TCTF/0CTF Web1 WriteUp

电脑坏了,一周没摸电脑,期间也打了几场比赛补更新一下之前的WriteUp

第一次打TCTF国际赛,tcl… 学到了很多关于java web和php底层的知识

Ghost Pepper

使用Firefox访问题目:https://111.186.63.207:31337,获得初始密码:
image_1d6ug0i4o1foo415gjp1aje19vrp.png-68.9kB

进入后给了一个指纹信息: Powered by Jetty:// 9.3.24.v20180605

以前没接触过java web,简单搜索了一下,Jetty的工作原理,可以和Tomcat类比,是一个Servlet引擎,具体细节可以参考IBM上的这篇文章

首先了解一下以下几个术语:
JavaBeans: 是Java中一种特殊的类,可以将多个对象封装到一个对象(bean)中。特点是可序列化,提供无参构造器,提供getter方法和setter方法访问对象的属性。名称中的“Bean”是用于Java的可重用软件组件的惯用叫法。
Mbean, 即 managed beans被管理的Beans根据上述参考文章所述,简单来说即Jetty可以安装一些扩展,可以在Mbean中对其进行定义,即可在server运行的时候将扩展加入运行。

JMX,即 Java Management Extensions Java管理扩展

Jolokia,是一个利用JSON通过Http实现JMX远程管理的开源项目

在这个题中,简单测试之后发现开启了Jolokia服务,通过jolokia,可以方便通过GET/POST发送Json的操作Mbean,jolokia文档
在文档中写道jolokia支持一些opration:READ、WRITE、SEARCH、EXEC、LIST、VERSION

这里可以直接通过EXEC方法给Karaf安装一个控制台,就相当于拿到了webshell:
payload1:

1
https://111.186.63.207:31337/jolokia/exec/org.apache.karaf:name=root,type=feature/installFeature(java.lang.String)/webconsole

payload2: post传入json数据
image_1d6vvbpulbe813i1e7jlvqvs49.png-11.5kB

访问https://111.186.63.207:31337/system/console/gogo,flag:
image_1d6vvev5g58k16ld1ih1k99j9pm.png-4.9kB

所以这里做出这题的关键在于对jolokia和karaf特性的了解,以及对新东西的文档阅读学习能力。

Wallbreaker Easy

题目链接:https://111.186.63.208:31340
题目给了一个一句话木马让我们bypass disable_function

参考:
Exploiting Jolokia Agent with Java EE Servers